package net.neptech.strategy.form;

import net.neptech.model.vo.FormVO;

import java.util.Map;

public interface FormStrategy {

    /**
     * 策略注册方法
     */
    default void afterPropertiesSet(String key) {
        FormStrategyFactory.register(key, this);
    }

    /**
     * 判断两个值是否一致
     */
    boolean isSameValue(Object v1,Object v2);

    /**
     * 处理空值
     */
    default Object handleBlankValue(Object value) {
        return value;
    }


    /**
     * 检查字段格式
     */
    default void checkValue(Object value) {
    }

    /**
     * 数据的长度
     */
    int length(String s);

    /**
     * 判断是否为空
     */
    default boolean isBlank(Object value, FormVO formVO, Map<String,Object> paramMap) {
        return value == null;
    }
}
